package main

import "fmt"

func sum(x int, y int) int {
	return x + y
}

// 同类型参数，省略写法，只写最后一个type
func sum2(x, y int) int {
	return x + y
}

// 可变参数
func sum3(y ...int) {
	fmt.Printf("y=%v\n", y)
}

func sum4(x int, y ...int) {
	fmt.Printf("x=%v\n", x)
	fmt.Printf("y=%v\n", y)
}

// 多个返回值
func sum5(x, y int) (int, int) {
	return x, y
}

// 为返回值命名
func sum6(x, y int) (a int, b int) {
	a = x
	b = y
	return //不写，默认返回a,b
	// 写上可以覆盖掉返回值 如 return 3, 5
}

// 省略返回值类型写法
func sum7(x, y int) (a, b int) {
	a = x
	b = y
	return //不写，默认返回a,b
	// 写上可以覆盖掉返回值 如 return 3, 5
}

func main() {
	// a := sum(1, 2)
	// fmt.Println(a)

	// a := sum2(1, 2)
	// fmt.Println(a)

	// sum3(1, 2, 3, 4, 5)
	// sum4(1, 2, 3, 4, 5)

	// f, s := sum5(1, 2)
	// fmt.Println(f, s)

	// f, s := sum6(1, 2)
	// fmt.Println(f, s)

	// f, s := sum7(1, 2)
	// fmt.Println(f, s)

	//选择排序
	a := []int{10, 9, 6, 3, 8}
	for i := 0; i < len(a)-1; i++ {
		min_index := i
		for j := i + 1; j < len(a); j++ {
			if a[min_index] > a[j] {
				min_index = j
			}
		}
		// tmp := a[i]
		// a[i] = a[min_index]
		// a[min_index] = tmp
		a[i], a[min_index] = a[min_index], a[i]
		fmt.Println(a)
	}

}
